package com.yuntuzhilian.chapter8;



import java.util.Scanner;

/**
 * 
 ***************************************************************
 * @类名					:	Player
 * @描述					:	玩家类
 * @作者					:	王淼
 * @版本					:	v1.0
 * @日期					:	2016-6-16             
 * 
 * @最后修改日志			:		
 * @修改人				:	
 * @修订后版本				:	v2.0
 * @修改时间				:	  
 ****************************************************************
 */
//玩家,具有基本的用户游戏信息
public class Player {
	//属性
	private int levelNo;//级别号
	private int curScore; // 当前级别积分
	private long startTime = 0; // 当前级别开始时间
	private int elapsedTime; // 当前级别已用时间
	
	//对外方法
	public int getLevelNo() {
		return levelNo;
	}
	public void setLevelNo(int levelNo) {
		this.levelNo = levelNo;
	}
	public int getCurScore() {
		return curScore;
	}
	public void setCurScore(int curScore) {
		this.curScore = curScore;
	}
	public long getStartTime() {
		return startTime;
	}
	public void setStartTime(long startTime) {
		this.startTime = startTime;
	}
	public int getElapsedTime() {
		return elapsedTime;
	}
	public void setElapsedTime(int elapsedTime) {
		this.elapsedTime = elapsedTime;
	}
	
	
	/**
	 * 玩家类的玩游戏方法
	 */
	public void play(){
		Scanner input = new Scanner(System.in);
		//创建Game对象并传入player对象属性
		Game game=new Game(this);
		//外层循环(级别数)控制级别,循环一次晋级一级
		for (int i = 0; i < LevelParam.levels.length; i++) {
			//进来一次,代表着晋级一次
			this.levelNo+=1;
			//晋级之后,积分清零,计时清零(清为当前时间)
			this.curScore=0;
			this.startTime=System.currentTimeMillis();
			//内层循环(人机交互次数,字符串输入的次数)控制每一个级别交互次数,循环一次,与电脑交互一次(输入一次)
			for (int j = 0; j < LevelParam.levels[levelNo-1].getStrTime(); j++) {
				//获取游戏输出的随机字符串
				String outStr=game.printStr();
				System.out.print("请输入:");
				//接受用户输入
				String inStr=input.next();
				//判断是否输入正确
				game.printResult(outStr, inStr);
			}
			
		}
		
	}
	
	
	
	
}
